package com.wxh.bomb.netty.thread.queue;

import com.wxh.bomb.netty.thread.queue.bean.Netizen;
import com.wxh.bomb.netty.thread.queue.bean.Task;

import java.util.PriorityQueue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.SynchronousQueue;

/**
 * 队列
 *
 * @author wxh
 */
public class QueueTest {


    public static void main(String[] args) {
        // 定长队列
        ArrayBlockingQueue arrayBlockingQueue = new ArrayBlockingQueue(100);

        // 阻塞队列，队列没有长度
        LinkedBlockingDeque linkedBlockingDeque = new LinkedBlockingDeque();

        // 没有数据缓存空间，其中每个 put 必须等待一个 take
        SynchronousQueue synchronousQueue = new SynchronousQueue();


        // 优先队列， 有一个排序的过程
        PriorityQueue<Task> priorityQueue = new PriorityQueue<Task>();
        Task t1 = new Task(2, "任务2");
        Task t2 = new Task(4, "任务4");
        Task t3 = new Task(3, "任务3");
        Task t4 = new Task(1, "任务1");
        priorityQueue.add(t1);
        priorityQueue.add(t2);
        priorityQueue.add(t3);
        priorityQueue.add(t4);
        System.out.println(priorityQueue);

        // 延迟时间的队列
        DelayQueue<Netizen> netBars = new DelayQueue<Netizen>();
    }
}
